package com.huluobo.a2112mvvmdouyindemo.demo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;

import com.huluobo.a2112mvvmdouyindemo.R;

/**
 * 事件分发机制
 * dispatchTouchEvent 分发 可以将事件选择是否下发给子View,如果不下发,事件还存在
 * onTouchEvent 消费  可以消费掉事件,让事件不存在,不再向下传递
 * onInterceptTouchEvent 拦截 只有Layout才有,阻止事件向下传递,但是可以正常返回给父布局
 * <p>
 * 爷爷(activity) 父亲(layout) 儿子(view)  苹果(event)
 * 爷爷拿到一个苹果(event)->选择是否给父亲(分发)->父亲可以选择是否给儿子(分发),同时也可以选择不让儿子知道这个苹果(拦截)->
 * 儿子可以选择是否还给父亲(分发)->儿子可以选择是否吃掉苹果(消费)->父亲可以选择是否吃掉苹果(消费)->爷爷可以选择是否吃掉苹果(消费)
 */

public class TouchActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_touch);
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        Log.i("TagA", "activity的分发:" + ev.getAction());
        return super.dispatchTouchEvent(ev);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        Log.i("TagA", "activity的消费:" + event.getAction());
        return super.onTouchEvent(event);
    }
}